package com.meitianhui.convenitenbuy.module.wallet.di;

import android.app.Activity;

import com.meitianhui.convenitenbuy.di.PerActivity;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletAddCardPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletCardDetailPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletCardRecordPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletCardsPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletChangePresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletChangeRechargePresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletCouponDetailPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletCouponHistoryPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletCouponPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletGoldPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletPacketsPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletPaymentPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletPaymentSettingPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletPaymentShowPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletPointsPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletScanCardPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletScanningPresenter;
import com.meitianhui.convenitenbuy.module.wallet.presenter.WalletScanningStorePresenter;
import com.meitianhui.convenitenbuy.module.wallet.ui.WalletFragment;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletAddCardActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletCardDetailActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletCardRecordActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletChangeActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletChangeRechargeActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletCouponActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletCouponDetailActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletCouponHistoryActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletFamilyCardsActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletGoldActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletPaymentActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletPaymentSettingActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletPaymentShowActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletPointsActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletRedPacketsActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletScanCardActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletScanningActivity;
import com.meitianhui.convenitenbuy.module.wallet.ui.activity.WalletScanningStoreActivity;

import dagger.Module;
import dagger.Provides;

/**
 * Created by Administrator on 2017/11/2.
 */
@Module
public class WalletModule {
    private WalletPresenter walletPresenter;
    private WalletPaymentPresenter walletPaymentPresenter;
    private WalletChangePresenter walletChangePresenter;
    private WalletGoldPresenter walletGoldPresenter;
    private WalletPointsPresenter walletPointsPresenter;
    private WalletPacketsPresenter walletPacketsPresenter;
    private WalletChangeRechargePresenter walletChangeRechargePresenter;
    private WalletPaymentSettingPresenter walletPaymentSettingPresenter;
    private WalletPaymentShowPresenter walletPaymentShowPresenter;
    private WalletCouponPresenter walletCouponPresenter;
    private WalletCouponHistoryPresenter walletCouponHistoryPresenter;
    private WalletCouponDetailPresenter walletCouponDetailPresenter;
    private WalletScanningPresenter walletScanningPresenter;
    private WalletScanningStorePresenter walletScanningStorePresenter;
    private WalletCardsPresenter walletCardsPresenter;
    private WalletScanCardPresenter walletScanCardPresenter;
    private WalletAddCardPresenter walletAddCardPresenter;
    private WalletCardDetailPresenter walletCardDetailPresenter;
    private WalletCardRecordPresenter walletCardRecordPresenter;
    private Activity mActivity;

    public WalletModule(Activity mActivity) {
        this.mActivity = mActivity;
    }

    public WalletModule(WalletFragment activity) {
        walletPresenter = new WalletPresenter(activity, activity);
    }

    public WalletModule(WalletPaymentActivity activity) {
        walletPaymentPresenter = new WalletPaymentPresenter(activity, activity);
    }

    public WalletModule(WalletChangeActivity activity) {
        walletChangePresenter = new WalletChangePresenter(activity, activity);
    }

    public WalletModule(WalletGoldActivity activity) {
        walletGoldPresenter = new WalletGoldPresenter(activity, activity);
    }

    public WalletModule(WalletPointsActivity activity) {
        walletPointsPresenter = new WalletPointsPresenter(activity, activity);
    }

    public WalletModule(WalletRedPacketsActivity activity) {
        walletPacketsPresenter = new WalletPacketsPresenter(activity, activity);
    }

    public WalletModule(WalletPaymentSettingActivity activity) {
        walletPaymentSettingPresenter = new WalletPaymentSettingPresenter(activity, activity);
    }

    public WalletModule(WalletPaymentShowActivity activity) {
        walletPaymentShowPresenter = new WalletPaymentShowPresenter(activity, activity);
    }

    public WalletModule(WalletChangeRechargeActivity activity) {
        walletChangeRechargePresenter = new WalletChangeRechargePresenter(activity, activity);
    }

    public WalletModule(WalletCouponActivity activity) {
        walletCouponPresenter = new WalletCouponPresenter(activity, activity);
    }

    public WalletModule(WalletCouponHistoryActivity activity) {
        walletCouponHistoryPresenter = new WalletCouponHistoryPresenter(activity, activity);
    }

    public WalletModule(WalletCouponDetailActivity activity) {
        walletCouponDetailPresenter = new WalletCouponDetailPresenter(activity, activity);
    }

    public WalletModule(WalletScanningActivity activity) {
        walletScanningPresenter = new WalletScanningPresenter(activity, activity);
    }

    public WalletModule(WalletScanningStoreActivity activity) {
        walletScanningStorePresenter = new WalletScanningStorePresenter(activity, activity);
    }


    public WalletModule(WalletFamilyCardsActivity activity) {
        walletCardsPresenter = new WalletCardsPresenter(activity, activity);
    }

    public WalletModule(WalletScanCardActivity activity) {
        walletScanCardPresenter = new WalletScanCardPresenter(activity, activity);
    }

    public WalletModule(WalletAddCardActivity activity) {
        walletAddCardPresenter = new WalletAddCardPresenter(activity, activity);
    }

    public WalletModule(WalletCardDetailActivity activity) {
        walletCardDetailPresenter = new WalletCardDetailPresenter(activity, activity);
    }

    public WalletModule(WalletCardRecordActivity activity) {
        walletCardRecordPresenter = new WalletCardRecordPresenter(activity, activity);
    }



    @Provides
    @PerActivity
    public Activity provideActivity() {
        return mActivity;
    }

    @Provides
    WalletPresenter provideWalletPresenter() {
        return walletPresenter;
    }

    @Provides
    WalletPaymentPresenter provideWalletPaymentPresenter() {
        return walletPaymentPresenter;
    }

    @Provides
    WalletChangePresenter provideWalletChangePresenter() {
        return walletChangePresenter;
    }

    @Provides
    WalletGoldPresenter provideWalletGoldPresenter() {
        return walletGoldPresenter;
    }

    @Provides
    WalletPointsPresenter provideWalletPointsPresenter() {
        return walletPointsPresenter;
    }

    @Provides
    WalletPacketsPresenter provideWalletPacketsPresenter() {
        return walletPacketsPresenter;
    }

    @Provides
    WalletChangeRechargePresenter provideWalletChangeReChargePresenter() {
        return walletChangeRechargePresenter;
    }

    @Provides
    WalletPaymentSettingPresenter provideWalletPaymentSettingPresenter() {
        return walletPaymentSettingPresenter;
    }

    @Provides
    WalletPaymentShowPresenter provideWalletPaymentShowPresenter() {
        return walletPaymentShowPresenter;
    }

    @Provides
    WalletCouponPresenter provideWalletCouponPresenter() {
        return walletCouponPresenter;
    }

    @Provides
    WalletCouponHistoryPresenter provideWalletCouponHistoryPresenter() {
        return walletCouponHistoryPresenter;
    }

    @Provides
    WalletCouponDetailPresenter provideWalletCouponDetailPresenter() {
        return walletCouponDetailPresenter;
    }

    @Provides
    WalletScanningPresenter provideWalletScanningPresenter() {
        return walletScanningPresenter;
    }

    @Provides
    WalletScanningStorePresenter provideWalletScanningStorePresenter() {
        return walletScanningStorePresenter;
    }

    @Provides
    WalletCardsPresenter provideWalletCardsStorePresenter() {
        return walletCardsPresenter;
    }

    @Provides
    WalletScanCardPresenter provideWalletScanCardPresenter() {
        return walletScanCardPresenter;
    }

    @Provides
    WalletAddCardPresenter provideWalletAddCardPresenter() {
        return walletAddCardPresenter;
    }

    @Provides
    WalletCardDetailPresenter provideWalletCardDetailPresenter() {
        return walletCardDetailPresenter;
    }

    @Provides
    WalletCardRecordPresenter provideWalletCardRecordPresenter() {
        return walletCardRecordPresenter;
    }

}
